Python量化交易学习笔记(33)

您所在的位置:网站首页 auto x 股票 Python量化交易学习笔记(33)

Python量化交易学习笔记(33)

2023-12-09 20:20| 来源: 网络整理| 查看: 265

本文将对backtrader的仓位管理进行介绍,具体以同时回测交易3只股票为例,查看每日仓位情况。

策略

买入条件:5日线金叉60日线

卖出条件:5日线死叉60日线

示例

仓位信息输出的核心代码位于策略类的next的方法中:

def next(self): for i, d in enumerate(self.datas): dt, dn = self.datetime.date(), d._name # 获取时间及股票代码 pos = self.getposition(d) if not len(pos): # 不在场内,则可以买入 if self.inds[d]['cross'] > 0: # 如果金叉 self.buy(data = d, size = self.p.pstake) # 买买买 elif self.inds[d]['cross'] 0: if self.p.poneplot: d.plotinfo.plotmaster = self.datas[0] def next(self): for i, d in enumerate(self.datas): dt, dn = self.datetime.date(), d._name # 获取时间及股票代码 pos = self.getposition(d) if not len(pos): # 不在场内,则可以买入 if self.inds[d]['cross'] > 0: # 如果金叉 self.buy(data = d, size = self.p.pstake) # 买买买 elif self.inds[d]['cross'] stk_pools.shape[0]: print('股票数目不能大于%d' % stk_pools.shape[0]) exit() for i in range(stk_num): stk_code = stk_pools['code'][stk_pools.index[i]] stk_code = '%06d' % stk_code # 读入数据 datapath = '../TQDat/day/stk/' + stk_code + '.csv' # 创建价格数据 data = bt.feeds.GenericCSVData( dataname = datapath, fromdate = datetime.datetime(2019, 1, 1), todate = datetime.datetime(2019, 12, 31), nullvalue = 0.0, dtformat = ('%Y-%m-%d'), datetime = 0, open = 1, high = 2, low = 3, close = 4, volume = 5, openinterest = -1 ) # 在Cerebro中添加股票数据 cerebro.adddata(data, name = stk_code) # 设置启动资金 cerebro.broker.setcash(100000.0) # 设置佣金为零 cerebro.broker.setcommission(commission=0.00) cerebro.addstrategy(SmaCross, poneplot = False) # 添加策略 cerebro.run() # 遍历所有数据 # 打印最后结果 print('Final Portfolio Value: %.2f' % cerebro.broker.getvalue()) cerebro.plot(style = "candlestick") # 绘图

博客内容只用于交流学习,不构成投资建议,盈亏自负!

个人博客:http://coderx.com.cn/(优先更新) 项目最新代码:https://gitee.com/sl/quant_from_scratch 欢迎大家转发、留言。有微信群用于学习交流,感兴趣的读者请扫码加微信! 如果认为博客对您有帮助,可以扫码进行捐赠,感谢!

微信二维码微信捐赠二维码在这里插入图片描述在这里插入图片描述


【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3